﻿#pragma once

#include <SDKDDKVer.h>

#define WIN32_LEAN_AND_MEAN             // 从 Windows 头文件中排除极少使用的内容
// Windows 头文件
#include <windows.h>
// C 运行时头文件
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <time.h>
// C++ 运行时头文件
#include <vector>
#include <memory>
#include <exception>
#include <stdexcept>
// GDI+ 运行时头文件
#include <atlconv.h>
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
// Sound 运行时头文件
#include <Mmsystem.h>
#pragma comment(lib, "Winmm.lib")

#include "resource.h"


#define MY_OVERLAPPED (WS_OVERLAPPED| WS_CAPTION| WS_SYSMENU| WS_MINIMIZEBOX)
#define MAX_LOADSTRING 100

#define _WindowWidth 500
#define _WindowHeight 440

#define TIMER_ID 1

// 坦克方向
enum TankDir {
	Left,
	Up,
	Right,
	Down,
};

CONST TankDir g_dir[] = {
	Left,
	Up,
	Right,
	Down,
};

// 坦克移动方向
CONST INT DirMove[4][2] = {
	{-1, 0},
	{ 0,-1},
	{ 1, 0},
	{ 0, 1},
};

// 坦克种类
enum TankKind {
	TankKind_Player0,
	TankKind_Player1,
	TankKind_gray,
	TankKind_red,
	TankKind_green,
	TankKind_yellow
};

// 敌人坦克种类
enum EnemyKind {
	EnemyKind_general,// 普通坦克 hp 1
	EnemyKind_prop,// 道具坦克 hp 2
	EnemyKind_big,// 大坦克 hp 4
};

CONST INT Box4 = 4;
CONST INT Box8 = 8;
CONST INT Box16 = 16;
CONST INT Box32 = 32;

// 画布范围
CONST Gdiplus::Rect _CanvasRect(10, 10, 416, 416);

std::string wstring_to_string(const std::wstring& wstr);

#include "CSound.h"
#include "CTimer.h"
#include "CBlast.h"
#include "CStruct.h"
